package maple.thelittleredbook.content.dto;

import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.Pattern;

/**
 * 内容创建请求DTO
 */
@Data
public class ContentCreateRequestDTO {

    /**
     * 内容类型
     */
    @NotNull(message = "内容类型不能为空")
    @Pattern(regexp = "^(IMAGE|VIDEO)$", message = "内容类型只能是IMAGE或VIDEO")
    private String contentType;

    /**
     * 标题
     */
    @NotBlank(message = "标题不能为空")
    @Size(max = 100, message = "标题不能超过100个字符")
    private String title;

    /**
     * 文本内容
     */
    @NotBlank(message = "文本内容不能为空")
    @Size(max = 5000, message = "文本内容不能超过5000个字符")
    private String textContent;

    /**
     * 封面图片（可选）
     */
    private MultipartFile cover;

    /**
     * 图片文件数组（当contentType为IMAGE时使用）
     */
    private MultipartFile[] images;

    /**
     * 视频文件（当contentType为VIDEO时使用）
     */
    private MultipartFile video;
}